Page({
  data: {},
  onLoad() {},
  onShow(){
    //初始化蓝牙适配器
    my.openBluetoothAdapter({
      success: (res) => {
        console.log(res)
        //isSupportBLE:是否支持BLE
      },
      fail:(res) => {
        console.log(res)
          // 12	蓝牙未打开
          // 13	与系统服务的链接暂时丢失
          // 14	未授权支付宝使用蓝牙功能
          // 15	未知错误
      }
    });
    //关闭蓝牙
    my.closeBluetoothAdapter({
      success: (res) => {
      },
      fail:(res) => {
      },
      complete: (res)=>{
      }
    });
    //获取蓝牙状态
    my.getBluetoothAdapterState({
      success: (res) => {
        console.log(res)
        // discovering		是否正在搜索设备
        // available		  蓝牙模块是否可用(需支持 BLE 并且蓝牙是打开状态)
      },
      fail:(res) => {
      },
      complete: (res)=>{
      }
    });
    //开始搜索附近蓝牙
    my.startBluetoothDevicesDiscovery({
      services: ['fff0'],//蓝牙设备主 service 的 uuid 列表
      allowDuplicatesKey:false,//是否允许重复上报同一设备,是则onBluetoothDeviceFound 方法会多次上报同一设备，但是 RSSI 值会有不同
      interval:0,//上报设备的间隔，意思是找到新设备立即上报，否则根据传入的间隔上报
      success: (res) => {
        console.log(res)
      },
      fail:(res) => {
      },
      complete: (res)=>{
      }
    });
    //停止搜索附近蓝牙
    my.stopBluetoothDevicesDiscovery({
      success: (res) => {
        console.log(res)
      },
      fail:(res) => {
      },
      complete: (res)=>{
      }
    });
    //获取已发现蓝牙,包括已连接的设备
    my.getBluetoothDevices({
      success: (res) => {
        console.log(res)
          //devices 已发现设备列表
            // name	String	蓝牙设备名称，某些设备可能没有
            // deviceName(兼容旧版本)	String	值与 name 一致
            // localName	String	广播设备名称
            // deviceId	String	设备 Id
            // RSSI	Number	设备信号强度
            // advertisData	Hex String	设备的广播内容
            // manufacturerData	Hex String	设备的manufacturerData
      },
      fail:(res) => {
      },
      complete: (res)=>{
      }
    });
    //获取处于连接状态的蓝牙设备
    my.getConnectedBluetoothDevices({
      services:[],//蓝牙设备注service的uuid列表
      success: (res) => {
        console.log(res)
          // devices 已连接的设备列表
      },
      fail:(res) => {
      },
      complete: (res)=>{
      }
    });
    //连接低功耗蓝牙
    my.connectBLEDevice({
      deviceId: deviceId,//蓝牙设备id , 需要在上面的 getBluetoothDevices 或 onBluetoothDeviceFound 接口中获取
      success: (res) => {
        console.log(res)
      },
      fail:(res) => {
      },
      complete: (res)=>{
      }
    });
    //断开与低功耗蓝牙连接
    my.disconnectBLEDevice({
      deviceId: deviceId,
      success: (res) => {
        console.log(res)
      },
      fail:(res) => {
      },
      complete: (res)=>{
      }
    });
    //向低功耗蓝牙设备特征值中写入数据
    my.writeBLECharacteristicValue({
      deviceId: deviceId,//蓝牙设备 id
      serviceId: serviceId,//蓝牙特征值对应 service 的 uuid
      characteristicId: characteristicId,//蓝牙特征值的 uuid
      value: 'fffe',//蓝牙设备特征值对应的值，16进制字符串，限制在20字节内
      success: (res) => {
        console.log(res)
      },
      fail:(res) => {
      },
      complete: (res)=>{
      }
    });
    // 读取低功耗蓝牙设备特征值中的数据
    my.readBLECharacteristicValue({
      deviceId: deviceId,
      serviceId: serviceId,
      characteristicId: characteristicId,
      success: (res) => {
        console.log(res)
      },
      fail:(res) => {
      },
      complete: (res)=>{
      }
    });
    // 启用低功耗蓝牙设备特征值变化时的 notify 功能
    my.notifyBLECharacteristicValueChange({
      deviceId: deviceId,
      serviceId: serviceId,
      characteristicId: characteristicId,
      success: (res) => {
        console.log(res)
      },
      fail:(res) => {
      },
      complete: (res)=>{
      }
    });
    // 获取蓝牙设备所有 service（服务）
    my.getBLEDeviceServices({
      deviceId: deviceId,
      success: (res) => {
        console.log(res)
      },
      fail:(res) => {
      },
      complete: (res)=>{
      }
    });
    // 获取蓝牙设备所有 characteristic（特征值）
    my.getBLEDeviceCharacteristics({
      deviceId: deviceId,
      serviceId: serviceId,
      success: (res) => {
        console.log(res)
      },
      fail:(res) => {
      },
      complete: (res)=>{
      }
    });
    // 寻找到新的蓝牙设备时触发此事件。
    // Page({
    //   onLoad() {
    //     this.callback = this.callback.bind(this);
    //     my.onBluetoothDeviceFound(this.callback);
    //   },
    //   onUnload() {
    //     my.offBluetoothDeviceFound(this.callback);
    //   },
    //   callback(res) {
    //     console.log(res);
    //   },
    // })
    // 移除寻找到新的蓝牙设备事件的监听。
    my.offBluetoothDeviceFound();
    // 监听低功耗蓝牙设备的特征值变化的事件。
    // Page({
    //   onLoad() {
    //     this.callback = this.callback.bind(this);
    //     my.onBLECharacteristicValueChange(this.callback);
    //   },
    //   onUnload() {
    //     my.offBLECharacteristicValueChange(this.callback);
    //   },
    //   callback(res) {
    //     console.log(res);
    //   },
    // })
    // 移除低功耗蓝牙设备的特征值变化事件的监听。
    my.offBLECharacteristicValueChange();
    // 监听低功耗蓝牙连接的错误事件，包括设备丢失，连接异常断开等。
    // 移除低功耗蓝牙连接的错误事件的监听。
    my.offBLEConnectionStateChanged();
    // 监听本机蓝牙状态变化的事件。
    // 移除本机蓝牙状态变化的事件的监听。
    my.offBluetoothAdapterStateChange();
  }
});
